/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2.0.0                                 |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      changeDictionaryDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

#include        "$FOAM_CASE/0/include/initialConditions"

dictionaryReplacement
{

    // Specify
    // - all fvPatchFields with potential non-uniform values
    // - all fvPatchFields originating from meshing
    // - all fvPatchFields originating from mesh-redistribution

    p
    {
        boundaryField
        {
            outlet
            {
                type            uniformFixedValue;
                value           $pressure;
                uniformValue    $pressure;
            }
            inlet
            {
                type            zeroGradient;
            }
            "terrain_.*"
            {
                type            zeroGradient;
            }
            ground
            {
                type            zeroGradient;
            }
            #include "$FOAM_CASE/0/include/sideAndTopPatches"
            "procBoundary.*"
            {
                type            processor;
            }
        }
    }

    k
    {
        boundaryField
        {
            outlet
            {
                type            inletOutlet;
                inletValue      uniform 0.0;
                value           uniform $turbulentKE;
            }
            inlet
            {
                type            uniformFixedValue;
                uniformValue    $turbulentKE;
            }
            "terrain_.*"
            {
                type            kqRWallFunction;
                value           uniform 0.0;
            }
            ground
            {
                type            zeroGradient;
            }
            #include "$FOAM_CASE/0/include/sideAndTopPatches"
            "procBoundary.*"
            {
                type            processor;
            }
        }
    }

    U
    {
        boundaryField
        {
            outlet
            {
                type            inletOutlet;
                inletValue      uniform (0 0 0);
                value           uniform $flowVelocity;
            }
            inlet
            {
                type            atmBoundaryLayerInletVelocity;
                Uref            10.0;
                Href            20;
                n               (1 0 0);
                z               (0 0 1);
                z0              0.1;
                zGround         935.0;
                value           uniform $flowVelocity;
            }
            "terrain_.*"
            {
                type            uniformFixedValue;
                uniformValue    $flowVelocity;
            }
            ground
            {
                type            uniformFixedValue;
                uniformValue    $flowVelocity;
            }
            #include "$FOAM_CASE/0/include/sideAndTopPatches"
            "procBoundary.*"
            {
                type            processor;
            }
        }
    }

    nut
    {
        boundaryField
        {
            outlet
            {
                type            calculated;
                value           uniform 0;
            }
            inlet
            {
                type            calculated;
                value           uniform 0;
            }
            "terrain_.*"
            {
                type            nutkRoughWallFunction;
                Ks              uniform 0.2; //Ks = 20 Z0
                Cs              uniform 0.5;
                value           uniform 0.0;
            }
            ground
            {
                type            calculated;
                value           uniform 0;
            }
            #include "$FOAM_CASE/0/include/sideAndTopPatches"
            "procBoundary.*"
            {
                type            processor;
            }
        }
    }

    epsilon
    {
        boundaryField
        {
            outlet
            {
                type            zeroGradient;
            }
            inlet
            {
                type            atmBoundaryLayerInletEpsilon;
                Ustar           0.82;
                z               (0 0 1);
                z0              0.1;
                value           uniform $turbulentEpsilon;
                zGround         935.0;
            }
            "terrain_.*"
            {
                type            epsilonWallFunction;
                Cmu             0.09;
                kappa           0.4;
                E               9.8;
                value           uniform $turbulentEpsilon;
            }
            ground
            {
                type            zeroGradient;
            }
            #include "$FOAM_CASE/0/include/sideAndTopPatches"
            "procBoundary.*"
            {
                type            processor;
            }
        }
    }
}

// ************************************************************************* //
